In a multiprocessor computing system, a plurality of processors cooperate with each other in performing system tasks. Cooperation involves the exchange of information; hence, a significant portion of the processors' activities comprises inter-processor communications. The speed and efficiency with which the communications are performed directly and significantly affect the performance of the system. Hence, the latency of the inter-processor communication mechanism, which is the elapsed time required to transmit a communication from one processor to another and to get a response back, must be made as short as possible.
Existing protocols typically do not minimize latency. For example, in many communication protocols currently enjoying popularity, the data which are being communicated are transferred through a plurality of protocol layers. The data are transformed several times as they descend and ascend the layers of the protocol. Each transformation adds to the overhead of the protocol, increasing latency and decreasing throughput. For another example, many existing protocols include extensive and complex error-recovery strategies and slow communication acknowledgment procedures to deal with communications that become either lost or garbled during transmission. To limit the cost of implementing the error-recovery strategies, the protocols typically implement them in software. The complexity of the strategies, combined with the slowness of software implementations, likewise add to the overhead of the protocol and increase latency at the expense of throughput. To limit the cost of implementing acknowledgment procedures, protocols typically use a single acknowledgment to serve to acknowledge a plurality of communications, and also "piggyback" acknowledgments onto other communications. The effect is again an exacerbation of the latency problem due to delays in acknowledgment.
In summary, then, a problem in the art is the lack of a communication protocol optimized for minimum latency.